package com.stylefeng.guns.common.persistence.model;

import java.beans.Transient;
import java.io.Serializable;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.enums.IdType;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import com.stylefeng.guns.common.annotion.EmpCode;
import com.stylefeng.guns.common.annotion.Point;
import com.stylefeng.guns.common.annotion.PointType;
import com.stylefeng.guns.common.annotion.Year;
import com.stylefeng.guns.common.constant.PointConstType;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

/**
 * <p>
 *  学历提升
 * </p>
 *
 * @author rockjh
 * @since 2018-01-28
 */
@PointType(PointConstType.degreeTrainPoints)
@TableName("degree_train_points")
public class DegreeTrainPoints extends Model<DegreeTrainPoints> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
	@TableId(value="id", type= IdType.UUID)
	private String id;
	/**
	 * 年度
	 */
	@TableField("year")
	@Excel(name = "年度",width = 20)
	@Year
	private String year;
    /**
     * 员工编号
     */
	@EmpCode
	@TableField("emp_code")
	@Excel(name = "员工编号",width = 20)
	private String empCode;
	/**
	 * 员工姓名
	 */
	@TableField("emp_name")
	@Excel(name = "员工姓名",width = 20)
	private String empName;
    /**
     * 就读院校
     */
	@Excel(name = "就读院校",width = 20)
	private String school;
    /**
     * 所学专业
     */
	@Excel(name = "所学专业",width = 20)
	private String major;
    /**
     * 学历层次
     */
	@Excel(name = "学历层次",width = 20)
	private String education;
    /**
     * 学历层次代码
     */
	@TableField("education_code")
	private String educationCode;
    /**
     * 学位
     */
	@Excel(name = "学位",width = 20)
	private String degree;
    /**
     * 学位代码
     */
	@TableField("degree_code")
	private String degreeCode;
    /**
     * 学习形式
     */
	@Excel(name = "学习形式",width = 20)
	@TableField("learn_type")
	private String learnType;
    /**
     * 学习形式代码
     */
	@TableField("learn_type_code")
	private String learnTypeCode;
    /**
     * 入学时间
     */
	@TableField("enrol_date")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "入学时间", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd",width = 20)
	private Date enrolDate;

	@TableField(exist=false)
	private String strEnrolDate;

	/**
     * 毕业时间
     */
	@TableField("graduation_date")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "毕业时间", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd",width = 20)
	private Date graduationDate;

	@TableField(exist=false)
	private String strGraduationDate;
    /**
     * 证书编码
     */
	@TableField("certificate_code")
	@Excel(name = "证书编号",width = 20)
	private String certificateCode;
    /**
     * 获得积分
     */
	@Point
	@Excel(name = "积分",width = 15)
	private Double integral;
    /**
     * 创建时间
     */
	@TableField("create_date")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date createDate;
    /**
     * 数据来源
     */
	@TableField("data_origin")
	private String dataOrigin;


	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getEmpName() {
		return empName;
	}

	public void setEmpName(String empName) {
		this.empName = empName;
	}

	public String getEmpCode() {
		return empCode;
	}

	public void setEmpCode(String empCode) {
		this.empCode = empCode;
	}

	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}

	public String getSchool() {
		return school;
	}

	public void setSchool(String school) {
		this.school = school;
	}

	public String getMajor() {
		return major;
	}

	public void setMajor(String major) {
		this.major = major;
	}

	public String getEducation() {
		return education;
	}

	public void setEducation(String education) {
		this.education = education;
	}

	public String getEducationCode() {
		return educationCode;
	}

	public void setEducationCode(String educationCode) {
		this.educationCode = educationCode;
	}

	public String getDegree() {
		return degree;
	}

	public void setDegree(String degree) {
		this.degree = degree;
	}

	public String getDegreeCode() {
		return degreeCode;
	}

	public void setDegreeCode(String degreeCode) {
		this.degreeCode = degreeCode;
	}

	public String getLearnType() {
		return learnType;
	}

	public void setLearnType(String learnType) {
		this.learnType = learnType;
	}

	public String getLearnTypeCode() {
		return learnTypeCode;
	}

	public void setLearnTypeCode(String learnTypeCode) {
		this.learnTypeCode = learnTypeCode;
	}

	public Date getEnrolDate() {
		return enrolDate;
	}

	public void setEnrolDate(Date enrolDate) {
		this.enrolDate = enrolDate;
	}

	public Date getGraduationDate() {
		return graduationDate;
	}

	public void setGraduationDate(Date graduationDate) {
		this.graduationDate = graduationDate;
	}

	public String getCertificateCode() {
		return certificateCode;
	}

	public void setCertificateCode(String certificateCode) {
		this.certificateCode = certificateCode;
	}

	public Double getIntegral() {
		return integral;
	}

	public void setIntegral(Double integral) {
		this.integral = integral;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public String getDataOrigin() {
		return dataOrigin;
	}

	public void setDataOrigin(String dataOrigin) {
		this.dataOrigin = dataOrigin;
	}

	public String getStrEnrolDate() {
		return strEnrolDate;
	}

	public void setStrEnrolDate(String strEnrolDate) {
		this.strEnrolDate = strEnrolDate;
	}

	public String getStrGraduationDate() {
		return strGraduationDate;
	}

	public void setStrGraduationDate(String strGraduationDate) {
		this.strGraduationDate = strGraduationDate;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}

	@Override
	public String toString() {
		return "DegreeTrainPoints{" +
			"id=" + id +
			", empName=" + empName +
			", empCode=" + empCode +
			", year=" + year +
			", school=" + school +
			", major=" + major +
			", education=" + education +
			", educationCode=" + educationCode +
			", degree=" + degree +
			", degreeCode=" + degreeCode +
			", learnType=" + learnType +
			", learnTypeCode=" + learnTypeCode +
			", enrolDate=" + enrolDate +
			", graduationDate=" + graduationDate +
			", certificateCode=" + certificateCode +
			", integral=" + integral +
			", createDate=" + createDate +
			", dataOrigin=" + dataOrigin +
			"}";
	}
}
